perm filename CONCEP.TC[CLS,LSP] blob sn#859119 filedate 1988-06-29 generic text, type T, neo UTF8
!9!!1--1
!0Common Lisp Object System Specification!!1--1
!11. Programmer Interface Concepts!!1--1
!9CONTENTS!!1--2
!2Introduction!!1--3
!2Error Terminology!!1--4
!2Classes!!1--6
!3Defining Classes!!1--7
!3Creating Instances of Classes!!1--8
!3Slots!!1--8
!3Accessing Slots!!1--9
!2Inheritance!!1--10
!3Inheritance of Methods!!1--10
!3Inheritance of Slots and Slot Options!!1--10
!3Inheritance of Class Options!!1--11
!3Examples!!1--12
!2Integrating Types and Classes!!1--13
!2Determining the Class Precedence List!!1--16
!3Topological Sorting!!1--16
!3Examples!!1--17
!2Generic Functions and Methods!!1--19
!3Introduction to Generic Functions!!1--19
!3Introduction to Methods!!1--20
!3Agreement on Parameter Specializers and Qualifiers!!1--22
!3Congruent Lambda-Lists for All Methods of a Generic Function!!1--23
!3Keyword Arguments in Generic Functions and Methods!!1--23
!2Method Selection and Combination!!1--25
!3Determining the Effective Method!!1--25
!4Selecting the Applicable Methods!!1--25
!4Sorting the Applicable Methods by Precedence Order!!1--25
!4Applying Method Combination to the Sorted List of Applicable Methods!!1--26
!3Standard Method Combination!!1--27
!3Declarative Method Combination!!1--29
!3Built-in Method Combination Types!!1--29
!2Meta-Objects!!1--31
!3Metaclasses!!1--31
!3Standard Metaclasses!!1--31
!3Standard Meta-objects!!1--31
!2Object Creation and Initialization!!1--33
!3Initialization Arguments!!1--34
!3Declaring the Validity of Initialization Arguments!!1--34
!3Defaulting of Initialization Arguments!!1--35
!3Rules for Initialization Arguments!!1--36
!3Shared-Initialize!!1--37
!3Initialize-Instance!!1--38
!3Definitions of Make-Instance and Initialize-Instance!!1--39
!2Redefining Classes!!1--41
!3Modifying the Structure of Instances!!1--41
!3Initializing Newly Added Local Slots!!1--42
!3Customizing Class Redefinition!!1--42
!3Extensions!!1--43
!2Changing the Class of an Instance!!1--44
!3Modifying the Structure of the Instance!!1--44
!3Initializing Newly Added Local Slots!!1--44
!3Customizing the Change of Class of an Instance!!1--45
!2Reinitializing an Instance!!1--46
!3Customizing Reinitialization!!1--46